package com.soxing.braindata.service.manager;

import com.soxing.braindata.dao.domain.request.SearchRequest;
import com.soxing.common.utils.response.MyPage;
import com.soxing.common.utils.response.WebResponse;


public interface IManager<T> {

    /**
     * 添加用户
     *
     * @param obj
     * @return 返回操作结果 true:成功 false:失败
     */
    WebResponse<Boolean> add(T obj);

    /**
     * 更新用户
     *
     * @param obj
     * @return 返回操作结果 true:成功 false:失败
     */
    WebResponse<Boolean> update(T obj);

    /**
     * 基于id获取用户信息
     *
     * @param id
     * @return 返回用户信息
     */
    WebResponse<T> getById(Integer id);


    /**
     * 基于id删除用户记录
     * @param id 主键ID
     * @return 返回操作结果 true:成功 false:失败
     */
    WebResponse<Boolean> deleteById(Integer id);

    /**
     * 基于条件查询用户
     * @param request
     * @return
     */
    WebResponse<MyPage<T>> search(SearchRequest request);
}
